//
//  RequestBody.h
//  rmipclient
//
//  Created by bob on 16/1/5.
//  Copyright © 2016年 bob. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
///请求消息体对象
@interface RequestBody : NSObject

@property (nonatomic,strong) NSMutableDictionary *data;
@property (nonatomic,strong) NSMutableArray      *media_list;

/**
 *  使用字典对象初始化参数，应用于自定义参数列表情况或form表单请求情况
 *
 *  @param dict 字典对象
 */
-(void)setItemWithDictionary:(NSMutableDictionary*)dict;




/**
 *  动态参数生成item记录,注意参数间不能出现nil情况,一旦出现nil后续参数将不在有效,该方式一般对应为存储过程处理的接口模式，参数间需保证有效顺序
 *
 *  @param vString 动态参数列表
 */
-(void)setItemParaListWithIndex:(NSString *)vString,...NS_REQUIRES_NIL_TERMINATION;

/**
 *  键值对动态参数生成item记录,注意参数间不能出现nil情况,一旦出现nil后续参数将不在有效
 *
 *  @param vString 动态参数列表
 */
-(void)setItemParaListWithKeys:(NSString *)vString,...NS_REQUIRES_NIL_TERMINATION;

/**
 *  键值对动态参数生成item记录,注意参数间不能出现nil情况,一旦出现nil后续参数将不在有效
 *  自动在key前增加索引，便于后端排序
 *
 *  @param vString 动态参数列表
 */
-(void)setItemParaListWithIndexKeys:(NSString *)vString,...NS_REQUIRES_NIL_TERMINATION;

/**
 *  设置多记录items格式数据
 *
 *  @param array 请求记录数组
 */
-(void)setItemsWithArray:(NSMutableArray*)array;


/**
 *  追加图片,仅针对form表单,仅在datatype=JSON_ITEM情况下有效
 *  @param name  图片文件名称 当图片名称中包含logo关键字时，后端将自动生成缩略图，否则仅生成原始图像
 *  @param image 图片对象
 */
-(void)addImage:(NSString*)name image:(UIImage*)image;


/**
 *  追加媒体文件,仅针对form表单,仅在datatype=JSON_ITEM情况下有效
 *  @param name  媒体文件名称 当图片名称中包含logo关键字时，后端将自动生成缩略图，否则仅生成原始图像
 *  @param mediadata 媒体对象
 */
-(void)addMedia:(NSString*)name mediaData:(NSData*)mediadata extName:(NSString*)extname;

/**
 *  获取消息体对象
 *
 *  @return 消息体字典对象
 */
-(NSMutableDictionary*) getBody;

@end
